package com.seckill.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.seckill.entity.Seckill;

public interface SeckillDao {

	/**
	 * 减库存 根据商品id 和 秒杀的时间
	 * 
	 * @param seckillId
	 * @param killTime
	 * @return 更新影响的行数>1成功 <=0表示出现错误
	 */
	public int reduceNumber(@Param("seckillId") Long seckillId, @Param("killTime") Date killTime);

	/**
	 * 根据id查询库存商品
	 * 
	 * @param seckillId
	 * @return 该商品信息
	 */
	public Seckill queryById(Long seckillId);

	/**
	 * 根据偏移量和显示个数查询所有库存商品信息
	 * 
	 * @param offset
	 * @param limit
	 * @return List集合符合条件的商品库存信息
	 */
	public List<Seckill> queryAll(@Param("offset") int offset, @Param("limit") int limit);
	
	/**
	 * 使用存储过程执行秒杀
	 * @param paramMap
	 */
	public void killByProcedure(Map<String, Object> paramMap);
}
